package colecoes;

import interfaces.InterfaceOpcional;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import basicas.Acabamento;
import basicas.Opcional;
import basicas.Versao;
import fachada.JDBC;

public class ColOpcional implements InterfaceOpcional {
	
	Vector lst = new Vector();   // --> Declaracao do Vetor
	
	public void cadastrarOpcional(Opcional O) throws ClassNotFoundException, SQLException{
		String sql = "insert into opcional (descricaoopcional,codversao,prazoopcional,precoopcional) values ('"+
		O.getDescricaoOpcional()+"',"+
		O.getVer().getCodVersao()+","+
		O.getPrazoOpcional()+","+
		O.getPrecoOpcional()+");";
		
		Statement conexao = JDBC.getsStatement();
		conexao.executeUpdate(sql);
		conexao.close();
	}
	
	public void removerOpcional(int codigo) throws ClassNotFoundException, SQLException{
		String sql = "DELETE FROM opcional WHERE codOpcional = "+codigo+"";
		Statement conexao = JDBC.getsStatement();
		conexao.executeUpdate(sql);
		conexao.close();
	}

	public Opcional ConsultarOpcional(int codigo) throws ClassNotFoundException, SQLException{
		String sql = "SELECT *FROM opcional;";
		Statement conexao = JDBC.getsStatement();
		ResultSet resultado = conexao.executeQuery(sql);
		
		while(resultado.next()){
			
			ColVersao ver = new ColVersao();
			Opcional op = new Opcional();
			
			op.setCodOpcional(resultado.getInt("codOpcional"));
			int codVersao = resultado.getInt("codVersao");
			op.setVer(ver.consultarVersao(codVersao));
			op.setDescricaoOpcional(resultado.getString("descricaoOpcional"));
			op.setPrazoOpcional(resultado.getInt("prazoOpcional"));
			op.setPrecoOpcional(resultado.getFloat("precoOpcional"));
			return op;
		}
		conexao.close();
		return null;
	}

	public Vector listarOpcional() throws ClassNotFoundException, SQLException{
		String sql = "SELECT *FROM opcional;";
		Statement conexao = JDBC.getsStatement();
		ResultSet resultado = conexao.executeQuery(sql);                // Declaracao de uma query do banco
		
		while(resultado.next()){                                        // Enquanto a query estiver proximo
			Opcional op = new Opcional();
			ColVersao ver = new ColVersao();
			
			op.setCodOpcional(resultado.getInt("codOpcional"));
			int codVersao = resultado.getInt("codVersao");
			op.setVer(ver.consultarVersao(codVersao));
			
			op.setDescricaoOpcional(resultado.getString("descricaoOpcional"));
			op.setPrecoOpcional(resultado.getFloat("precoOpcional"));
			op.setPrazoOpcional(resultado.getInt("prazoOpcional"));
			
			lst.add(op);                                               // Armazena o resultado da buxca no vetor
		}
		conexao.close();
		return lst;		                                                // Retorna o vetor
	}
	
	public int valorDaVersao() throws ClassNotFoundException, SQLException{
		String sql = "select max(codversao) from versao;";
		Statement conexao= JDBC.getsStatement();  
		ResultSet rs= conexao.executeQuery(sql);  
		int numero = 0; 

		if (rs.next()){
			numero = rs.getInt("max"); 
		}
		rs.close();
		conexao.close();
		return numero;
		
	}

}




